"""
求100以内的素数

素数：又叫质数，是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数

方式，判断哪些不可能是素数：
- 从2开始到（自身-1）的数中找到一个能整除的
- 从2开始到自身开平方数中找到一个能整除的
- 一个合数一定可以分解成几个素数的乘积，也就是说，一个数能被一个素数整除就是合数

"""

import math

# 普通表达式方式
def test01():
    count = int(input('>>>'))
    for i in range(1, count + 1):
        if i <= 2:
            print('num is {}'.format(str(i)))
        else:
            for j in range(2, i):
                if i % j == 0:
                    break
            else:
                print('num is {}'.format(str(i)))

# 使用列表方式
def test02():
    count = int(input('>>>'))
    num = []
    for i in range(1, count + 1):
        if i <= 2:
            num.append(i)
        else:
            for j in range(2, i - 1):
                if i % j == 0:
                    break
            else:
                num.append(i)
    print(num)

# 优化
def test03():
    count = int(input('>>>'))
    num = []
    flag = False

    for i in range(2, count + 1):
        for j in num:
            if i % j == 0:
                flag = True
                break
            if j >= math.ceil(i ** 0.5):
                flag = False
                break
        if not flag:
            num.append(i)

    num.insert(0, 1)
    print(num)

# 测试
# test01()
# test02()
test03()